package config

type MySqlConfig struct {
	Host     string `mapstructure:"host" json:"host"`
	Port     int    `mapstructure:"port" json:"port"`
	User     string `mapstructure:"user" json:"user"`
	Password string `mapstructure:"password" json:"password"`
	DataBase string `mapstructure:"db" json:"db"`
}
type ConsulConfig struct {
	Host string `mapstructure:"host" json:"host"`
	Port int    `mapstructure:"port" json:"port"`
}

type NacosConfig struct {
	Host      string `mapstructure:"host" json:"host"`
	Port      uint64 `mapstructure:"port" json:"port"`
	NameSpace string `mapstructure:"namespace" json:"namespace"`
	User      string `mapstructure:"user" json:"user"`
	Password  string `mapstructure:"password" json:"password"`
	DataId    string `mapstructure:"data_id" json:"data_id"`
	Group     string `mapstructure:"group" json:"group"`
}

type ServerConfig struct {
	Name             string         `mapstructure:"name" json:"name"`
	Tags             []string       `mapstructure:"tags" json:"tags"`
	Host             string         `mapstructure:"host" json:"host"`
	MysqlInfo        MySqlConfig    `mapstructure:"mysql" json:"mysql"`
	ConsulInfo       ConsulConfig   `mapstructure:"consul" json:"consul"`
	RocketMqInfo     RocketmqConfig `mapstructure:"rocketmq" json:"rocketmq"`
	GoodsSrvInfo     BackSrvConfig  `mapstructure:"goods_srv" json:"goods_srv"`
	InventorySrvInfo BackSrvConfig  `mapstructure:"inventory_srv" json:"inventory_srv"`
	JaegerInfo       JaegerConfig   `mapstructure:"jaeger" json:"jaeger"`
}

// BackSrvConfig 后端服务
type BackSrvConfig struct {
	Name string `mapstructure:"name" json:"name"`
}

type RocketmqConfig struct {
	Host string `mapstructure:"host" json:"host"`
	Port int    `mapstructure:"port" json:"port"`
}
type JaegerConfig struct {
	Host string `mapstructure:"host" json:"host"`
	Port int    `mapstructure:"port" json:"port"`
	Name string `mapstructure:"name" json:"name"`
}
